package gm.server.virtual;

import gm.commands.SimulatorHardwareCommands;
import gm.server.Machine;
import gm.server.Server;
import gm.server.virtual.simulator2D.SimulatorMainFrame;

/**
 * Virtuális szerver szimulációs célokra.
 *
 * @author imruf84
 */
public final class VirtualServer extends Server {

    /**
     * Főablak.
     */
    private final SimulatorMainFrame mainFrame;

    /**
     * Konstruktor.
     *
     * @param port port
     * @param machine gép
     */
    public VirtualServer(int port, final Machine machine) {
        super(port, machine);

        // Felhasználói felület létrehozása.
        mainFrame = new SimulatorMainFrame(this);
        mainFrame.setVisible(true);
    }

    @Override
    protected void createCommandModule() {
        getCommandModule().addCommandSet(new SimulatorHardwareCommands(this));
    }

    @Override
    protected void onExit() {
        // Ablak bezárása.
        mainFrame.dispose();
    }

    @Override
    public String toString() {
        return "virtual server";
    }

}
